<?php
namespace Bstage\Controller;
use Common\Controller\BaseController;

class LoginController extends BaseController {

    /*
array(5) {
  ["name"]=>
  string(40) "模版 - 综合考核计算表设定.csv"
  ["type"]=>
  string(8) "text/csv"
  ["tmp_name"]=>
  string(22) "C:\Windows\php15A2.tmp"
  ["error"]=>
  int(0)
  ["size"]=>
  int(321)
}*/
    public function ceshi(){
        echo randomkeys(8);
    }

    /**
     * 登陆方法
     */
    public function loginAction(){
        $username = $_REQUEST['username']?$_REQUEST['username']:$this->errorReturn("请输入账号");
        $password = $_REQUEST['password']?md5($_REQUEST['password']):$this->errorReturn("请输入密码");

        $field = "admin_id,username,add_time";
        $admin_data = M("Admin")
            ->where(['username'=>$username,"password"=>$password])
            ->field($field)
            ->find();

        if(!$admin_data){
            $this->errorReturn("账号或密码错误");
        }

        $token = getToken();

        $update_token = M("Admin")
            ->where(['admin_id'=>$admin_data['admin_id']])
            ->setField("token",$token);
        if(!$update_token){
            $this->errorReturn("获取登陆标识失败，请重新尝试");
        }
        $admin_data['token'] = $token;
        //unset($admin_data['admin_id']);

        $admin_data['add_time'] = changeDateTime($admin_data['add_time']);

        $this->successReturn("登陆成功",$admin_data);
    }

    /**
     * 自动删除临时账号方法
     */
    public function autoDeleteTemporaryUserAction(){
        $current_time = time();

        M("User")
            ->where(['user_type'=>0,'use_end_time'=>['lt',$current_time]])
            ->delete();
    }

    public function sendEMailAction(){
        $send_body = "<p>内容：</p>
<p>（姓名），您好！</p>
<p>根据公司绩效考核工作安排，请您于"."2019-12-14"."至"."2019-12-16"."登陆考核系统进行打分。</p>
<p>登陆网址为：</p>
<a href='http://www.baidu.com/'>http://www.baidu.com/</a><br>
<p>您也可以在手机终端进行考核，请扫描二维码：</p>
<img src='cid:a.png' style='border: none;width:200px;height:200px' />
<p>感谢您的支持与配合！</p>";

        print_r($this->sendEMail("495247027@qq.com","测试邮件",$send_body));
    }

    public function ceshiSendEMail(){
        $startTime = "2018-12-18 16:00";
        $endTime = "2018-12-18 18:00";
        $inviteName = "这是一封邮件测试";
        $title = "这是一封邮件测试";
        $address = "会议室1";
        $content = "你好,这是一封邮件测试";
        $cal_msg ="BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
ORGANIZER:MAILTO:"  . $inviteName . "
DTSTART:" .date('Ymd', strtotime($startTime)) ."T". date('His', strtotime($startTime)). "Z
DTEND:" .date('Ymd', strtotime($endTime)) ."T". date('His', strtotime($endTime)). "Z
UID:" . time() . rand(100000,999999) . "
LOCATION:".$address ."
TRANSP:OPAQUE
SEQUENCE:0
DTSTAMP:" .date('Ymd', time()) ."T". date('His', time()). "Z
CATEGORIES:Meeting
SUMMARY:" . $title . "
PRIORITY:5
X-MICROSOFT-CDO-IMPORTANCE:1
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER:-PT3D
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
BEGIN:VTIMEZONE
TZID:US/Central
END:VTIMEZONE
END:VEVENT
END:VCALENDAR";
        vendor('PHPMailer.PHPMailerAutoload');
        $mail = new \PHPMailer(); //实例化

        $mail->Ical = $cal_msg;
        $mail->AltBody = $cal_msg;
        // 设置邮件编码
        $mail->setLanguage('zh_cn');
        $mail->SMTPDebug = 2;
        // 使用smtp鉴权方式发送邮件
        $mail->isSMTP();
        // smtp需要鉴权 这个必须是true
        $mail->SMTPAuth = true;
        // 链接qq域名邮箱的服务器地址
        $mail->Host = "mail.coscol.com.cn";
        // 设置使用ssl加密方式登录鉴权
        //$mail->SMTPSecure = 'ssl';
        // 设置ssl连接smtp服务器的远程服务器端口号
        $mail->Port = 25;
        // 设置发送的邮件的编码
        $mail->CharSet = 'UTF-8';
        // 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名
        $mail->FromName = 'renshibu@coscol.com.cn';
        // smtp登录的账号 QQ邮箱即可
        $mail->Username = 'renshibu';
        // smtp登录的密码 使用生成的授权码
        $mail->Password = 'Zuzhi1713';
        // 设置发件人邮箱地址 同登录账号
        $mail->From = 'renshibu@coscol.com.cn';
        // 邮件正文是否为html编码 注意此处是一个方法
        $mail->isHTML(true);
        // 设置收件人邮箱地址
        $mail->addAddress('495247027@qq.com');
        // 添加该邮件的主题
        $mail->Subject = $content;
        // 添加邮件正文
        $mail->Body = '<h1>邮件主题邮件发送测试</h1>';
        // 发送邮件 返回状态
        print_r($mail->send());
    }

    /**
     * 发送邮件
     * @param $user_email
     * @param $title
     * @param $body
     * @return bool
     */
    protected function sendEMail($user_email,$title,$body){
        if(!$user_email){
            return false;
        }
        try{
            vendor('PHPMailer.PHPMailerAutoload');
            $mail = new \PHPMailer(); //实例化
            // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
            $mail->SMTPDebug = 0;
            // 使用smtp鉴权方式发送邮件
            $mail->isSMTP();
            // smtp需要鉴权 这个必须是true
            $mail->SMTPAuth = C("MAIL_SMTPAUTH");
            // 链接域名邮箱的服务器地址
            $mail->Host = C("MAIL_HOST");
            // 设置使用ssl加密方式登录鉴权
            //$mail->SMTPSecure = C("MAIL_SMTP_SECURE");
            // 设置ssl连接smtp服务器的远程服务器端口号
            $mail->Port = C("MAIL_PORT");
            // 设置发送的邮件的编码
            $mail->CharSet = C("MAIL_CHARSET");
            // 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名
            $mail->FromName = C("MAIL_FROMNAME");
            // smtp登录的账号 QQ邮箱即可
            $mail->Username = C("MAIL_USERNAME");
            // smtp登录的密码 使用生成的授权码
            $mail->Password = C("MAIL_PASSWORD");
            // 设置发件人邮箱地址 同登录账号
            $mail->From = C("MAIL_FROM");
            // 邮件正文是否为html编码 注意此处是一个方法
            $mail->isHTML(C("MAIL_ISHTML"));
            // 设置收件人邮箱地址
            //for($i=0;$i<count($get_email_user_array);$i++){
            $mail->addAddress($user_email);
            //}
            // 添加该邮件的主题
            $mail->Subject = $title;
            // 添加邮件正文
            $mail->Body = $body;
            // 设置图片
            $mail->addEmbeddedImage("./Public/img/baidu_qrcode.png","a.png");
            // 为该邮件添加附件
            //$mail->addAttachment('./example.pdf');
            //// 发送邮件 返回状态
            $status = $mail->send();
            return $status;
        }catch (\Exception $e){
            var_dump($e);
        }
    }
}
?>